#!/bin/bash

function main() {



}

function init() {
    # 从 CMO 获取安装包放到/zpaas 目录下，解压，目录为/zpaas/ ZSmart_ZCM_V9.0.xx_Install_AIK，
    # 将每个模块的txt、yaml、tar 文件放到 /zpaas/ZSmart_ZCM_V9.0.xx_Install_AIK/images/unstable 目录下
}

function lvs_create() {
  # 查看vg 卷,确认哪个卷组的磁盘空间较大，重点看一下free
  sudo vgdisplay
  #[root@host-192-168-120-20 tmp]# df -h | grep vg_app-lv_app
  #/dev/mapper/vg_app-lv_app  905G   77M  859G    1% /app
  #[root@host-192-168-120-20 ~]# umount /app
  #[root@host-192-168-120-20 ~]# lvremove /dev/mapper/vg_app-lv_app
  #Do you really want to remove active logical volume vg_app/lv_app? [y/n]: y
  #Logical volume "lv_app" successfully removed
  #[root@host-192-168-120-20 ~]#
  # 如果现场将一个磁盘全部挂载至某个目录下，则需要重新分配，最后记得保留一些空间给现场提供的目录 /app，先取消挂载，后通过lvremove 移除掉
  #echo "/dev/mapper/vg_app-lvapp /app xfs defaults 0 0" >> /etc/fstab

  # 解压文件至zpaas 目录下
  #tar -zxf ZSmart_ZCM_V9.0.53_Install_AIK.tar.gz  -C /zpaas
}


# zcm节点
function ch1_zcm_master() {
mkdir -p /var/lib/kubelet /var/lib/docker /zpaas /zpaasssd /zcm /tmp/zlogs /tmp/zcore
lvcreate -n lvkubelet -L +35G vgdata
lvcreate -n lvdocker -L +50G vgdata
lvcreate -n lvzpaas -L +50G vgdata
lvcreate -n lvzpaasssd -L +15G vgdata
lvcreate -n lvzcm -L +15G vgdata
lvcreate -n lvzlogs -L +15G vgdata
lvcreate -n lvzcore -L +15G vgdata
mkfs.xfs /dev/vgdata/lvkubelet
mkfs.xfs /dev/vgdata/lvdocker
mkfs.xfs /dev/vgdata/lvzpaas
mkfs.xfs /dev/vgdata/lvzpaasssd
mkfs.xfs /dev/vgdata/lvzcm
mkfs.xfs /dev/vgdata/lvzlogs
mkfs.xfs /dev/vgdata/lvzcore
echo "/dev/mapper/vgdata-lvkubelet /var/lib/kubelet xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvdocker /var/lib/docker xfs rw,pquota 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzpaas /zpaas xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzpaasssd /zpaasssd xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzcm /zcm xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzlogs /tmp/zlogs xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzcore /tmp/zcore xfs defaults 0 0" >> /etc/fstab
mount -a

}

# 应用节点
function ch2_zcm_node() {
mkdir -p /var/lib/kubelet /var/lib/docker /zcm /tmp/zlogs /tmp/zcore
lvcreate -n lvkubelet -L +35G vgdata
lvcreate -n lvdocker -L +50G vgdata
lvcreate -n lvzcm -L +15G vgdata
lvcreate -n lvzlogs -L +15G vgdata
lvcreate -n lvzcore -L +15G vgdata
mkfs.xfs /dev/vgdata/lvkubelet
mkfs.xfs /dev/vgdata/lvdocker
mkfs.xfs /dev/vgdata/lvzcm
mkfs.xfs /dev/vgdata/lvzlogs
mkfs.xfs /dev/vgdata/lvzcore
echo "/dev/mapper/vgdata-lvkubelet /var/lib/kubelet xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvdocker /var/lib/docker xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzcm /zcm xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzlogs /tmp/zlogs xfs defaults 0 0" >> /etc/fstab
echo "/dev/mapper/vgdata-lvzcore /tmp/zcore xfs defaults 0 0" >> /etc/fstab
mount -a
}

function ch2_check_network_card() {
# 查看主机正在使用的网卡
#cat /proc/net/dev

#ifconfig -a|grep -e eth0 -e bond0 -0 ens
# 查看已安装网卡信息
#lspci | grep -i eth
# 查看某个网卡的具体信息
#ethtool eth0

# 查看主机ip 所在的网卡
ip addr
}

# 部署主机 zcm：硬件磁盘要求 200-600G 应用：硬件磁盘要求 200-300G ，cpu和内存有对应的部署方案，因为监控的主机数量不同，需要的资源也不同
# 1. 新增硬盘挂载至根目录下
# 2. 主机是否需要新增zpaas用户
# 3. 注意网卡修改
# 4. 单机不需要vip，高可用部署需要现场自己规划下一个vip
# 5. 推荐解压至 /zpaas 目录下，修改解压后的安装包根目录下的配置文件 aik.properties
# 6. 安装包中 ansible-playbook/hosts 用于指定添加计算节点时的相关主机信息
# 7. 开始安装 sh install.sh start single/ha
# 8. 可通过以下方式继续执行剩余安装步骤 sh install.sh restart init_k8s single 其中 init_k8s 为执行步骤名称，后面跟安装模式 single 或 ha。

# 实践采坑
# 1. 安装之前检查是否为国产操作系统，如果是得把版本systemver改掉，得先知道是对接的7还是8 install.sh 的 44 he 49 行，国产操作系统无该文件 /etc/redhat-release
# 现场无法确认则定义为为7 直接修改install.sh 脚本
# 如果现场的操作系统为国产操作系统，需要确认是从哪个操作系统版本衍生出来的，如果是从centos8 衍生出来的，则需要进行替换 sed -i 's/\\$releasever/8/g' install.sh
# 2. yum clean all;yum makecache 检查yum 源是否正常，可以使用现场提供的yum源
# 3. 安装MySQL数据库会提示连接超时,建议国产操作系统自己替换最新的yum源仓库后重新执行 sh install.sh restart check_mysql_connection single

# 总结： 国产操作系统必须要先换yum 源，部署ansible 的时候可能需要现场的yum源仓库，后面执行再报错则再禁用掉


main